﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using Tambini.Web;
using BusinessLayer.Clases_Seguridad_BO;
using EntityLayer;
namespace Tambini.Web
{
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        int CodigoPagina = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //t_usuario obj = new t_usuario();
                //obj.ID_USUARIO = "sistemas";
                //Session["USUARIO"] = obj;
            }

            Inicializar();
        }

        private void Inicializar()
        {
            if (Request["id"] != null)
            {
                try
                {
                    int idPadre = int.Parse(clsSeguridad.Decrypt(Request["id"].ToString()));

                    if (Request["id"] != null)
                    {
                        this.CodigoPagina = int.Parse(clsSeguridad.Decrypt(Request["id"].ToString()));
                    }

                    this.tvOpciones.Nodes.Clear();
                    this.LlenarOpciones(idPadre, null, this.tvOpciones, idPadre);

                    this.tvOpciones.ExpandAll();
                }
                catch (Exception ex)
                {
                    //throw ex;
                }
            }
        }

        
        public int ObtenerNodoPrincipal()
        {
            string id = ConfigurationManager.AppSettings["OpcionPrincipal"];
            if (!string.IsNullOrEmpty(id))
            {
                try
                {
                    return int.Parse(id);
                }
                catch (Exception)
                {
                    return 1;
                }
            }
            return 1;

        }

        public void LlenarOpciones(int? codigoPadre, TreeNode node, TreeView tree, int? valorInicial)
        {
            List<vw_opcion> treeItemsChild = new clsOpcionBL().ObtenerPorUsuario(((EntityLayer.t_usuario)Session[DatosSesion.User]).ID_USUARIO, (int)codigoPadre);

            foreach (vw_opcion hijos in treeItemsChild)
            {
                TreeNode newNode = new TreeNode(hijos.DES_NOMBRE, hijos.ID_OPCION.ToString());
                if (hijos.ID_OPCION == this.CodigoPagina) newNode.Selected = true;
                if (codigoPadre == valorInicial) tree.Nodes.Add(newNode);
                else node.ChildNodes.Add(newNode);
                this.LlenarOpciones(hijos.ID_OPCION, newNode, null, null);
            }
        }

        protected void tvOpciones_SelectedNodeChanged(object sender, EventArgs e)
        {
            this.CargarContenido();
        }

        protected void CargarContenido()
        {
            if (this.tvOpciones.SelectedNode != null)
            {
                string idPagina = this.tvOpciones.SelectedValue.ToString();
                string idPadre = string.Empty;

                if (Request["id"] != null)
                {
                    try
                    {
                        idPadre = clsSeguridad.Decrypt(Request["id"].ToString());
                    }
                    catch (Exception ex)
                    {
                        //throw ex;
                    }
                }

                t_opcion entity = new clsOpcionBL().ObtenerOpcionxId(int.Parse(idPagina));

                string url = entity.DES_URL;
                string indParametro = string.Empty;
                if (url.Length > 0)
                    indParametro = entity.DES_URL.Substring(url.Length - 1, 1);

                if (!(entity.DES_URL.Trim() == String.Empty || entity.DES_URL.Trim() == null))
                {
                    if (indParametro != "&")
                    {
                        Response.Redirect(entity.DES_URL + "?" + "id" + "=" +
                            clsSeguridad.Encrypt(idPadre) + "&" + "sub" + "=" + clsSeguridad.Encrypt(idPagina));
                    }
                    else
                    {
                        Response.Redirect( entity.DES_URL + "id" + "=" +
                               clsSeguridad.Encrypt(idPadre) + "&" + "sub" + "=" + clsSeguridad.Encrypt(idPagina));
                    }
                }
            }
        }

        protected void btnCerrarSesion_Click(object sender, EventArgs e)
        {
            //Session["SesionUser"] = null;
            Session[DatosSesion.User] = null;
            //Session["USUARIO"] = null;
            Session[DatosSesion.User] = null;
            //Session[DatosSesion.NombreCliente] = null;
            //Session[DatosSesion.CodigoCliente] = null;
            //Session[DatosSesion.SesionNegocio] = null;
            //Session[DatosSesion.SesionSucursal] = null;
            //Session[DatosSesion.SesionNombreNegocio] = null;
            //Session[DatosSesion.SesionNombreSucursal] = null;

            HttpCookie myCookie = new HttpCookie("InicioSesion");
            myCookie.Expires = DateTime.Now.AddDays(-2d);
            Response.Cookies.Add(myCookie);


            Response.Redirect("~/Administracion/Login.aspx");

        }

        protected void lbAyuda_Click(object sender, EventArgs e)
        {

            try
            {
                int id = 0;

                string pag = Request["id"].ToString();
                
           
                string idpagina = clsSeguridad.Decrypt(pag);
                
                if (idpagina != null)
                {
                    string subpag = Request["sub"].ToString();
                    string subpagina = clsSeguridad.Decrypt(subpag);
                    if (subpagina != null)
                    {
                        id = int.Parse(subpagina);
                    }
                    else
                    {
                        id = int.Parse(idpagina);
                    }
                }

                if (id > 0)
                {
                    t_opcion entity = new clsOpcionBL().ObtenerOpcionxId(id);

                    if (entity != null)
                    {
                        this.lblNombreOpcion.Text = entity.DES_NOMBRE;
                        this.lblDesripcionOpcion.Text = entity.DES_DESCRIPCION;
                        this.lblObjetivoOpcion.Text = entity.DES_OBJETIVO;
                        this.mpeAyuda.Show();
                    }
                }
                else
                {
                    this.lblNombreOpcion.Text = "Opción no definida.";
                    this.lblDesripcionOpcion.Text = "Descripción no establecida.";
                    this.lblObjetivoOpcion.Text = "Objetivo no establecido.";
                    this.mpeAyuda.Show();
                }

            }
            catch (Exception)
            {
                this.mpeAyuda.Hide();
            }
        }



    }
}
